﻿using System;
using System.Collections;
using System.Collections.Generic;

namespace UniRx
{
	// Token: 0x02000409 RID: 1033
	public interface IReadOnlyReactiveCollection<T> : IEnumerable<T>, IEnumerable
	{
		// Token: 0x17000194 RID: 404
		// (get) Token: 0x0600152B RID: 5419
		int Count { get; }

		// Token: 0x17000195 RID: 405
		T this[int index]
		{
			get;
		}

		// Token: 0x0600152D RID: 5421
		IObservable<CollectionAddEvent<T>> ObserveAdd();

		// Token: 0x0600152E RID: 5422
		IObservable<int> ObserveCountChanged(bool notifyCurrentCount = false);

		// Token: 0x0600152F RID: 5423
		IObservable<CollectionMoveEvent<T>> ObserveMove();

		// Token: 0x06001530 RID: 5424
		IObservable<CollectionRemoveEvent<T>> ObserveRemove();

		// Token: 0x06001531 RID: 5425
		IObservable<CollectionReplaceEvent<T>> ObserveReplace();

		// Token: 0x06001532 RID: 5426
		IObservable<Unit> ObserveReset();
	}
}
